"""
天气工具

这个工具提供天气查询功能，返回指定城市的天气信息。
为了演示目的，返回固定格式的天气信息。
"""

from datetime import datetime
from .base import Tool, ToolType


class WeatherTool(Tool):
    """
    天气工具类
    
    提供天气查询功能，返回指定城市的天气信息。
    这是一个演示工具，展示了如何创建自定义工具。
    """
    
    def __init__(self):
        super().__init__(
            name="weather",
            description="获取指定城市的天气信息",
            tool_type=ToolType.COMMUNICATION
        )
    
    async def execute(self, city: str) -> str:
        """
        获取天气信息
        
        Args:
            city: 城市名称
            
        Returns:
            包含天气信息的字符串
        """
        
        # 参数验证
        if not city or not city.strip():
            return "错误: 城市名称不能为空"
        
        city = city.strip()
        
        # 获取当前日期和时间
        now = datetime.now()
        current_datetime = now.strftime("%Y年%m月%d日 %H:%M:%S")
        
        # 返回固定格式的天气信息
        weather_info = f"{city}今天天气晴朗，温度25°C，{current_datetime}"
        
        return weather_info
    
    def get_weather_help(self) -> str:
        """获取天气工具帮助信息"""
        return """
## 🌤️ 天气工具使用说明

**功能**: 查询指定城市的天气信息

**使用方法**:
- "查询北京天气"
- "上海的天气怎么样？"  
- "天气 广州"

**返回格式**: 
{城市}今天天气晴朗，温度25°C，{当前日期时间}

**注意**: 这是一个演示工具，返回固定的天气信息
        """


# 创建工具实例并注册到默认注册表
def register_weather_tool():
    """注册天气工具"""
    from .base import default_registry
    weather_tool = WeatherTool()
    default_registry.register(weather_tool)
    return weather_tool

# 自动注册
register_weather_tool()